#ifndef STUDENT_MANAGER_H
#define STUDENT_MANAGER_H

#include "student.h"

// 学生管理器结构体
typedef struct {
    Student **students;  // 动态学生数组
    int size;            // 当前学生数量
    int capacity;        // 数组容量
} StudentManager;

// 构造函数
StudentManager* manager_create(int initial_capacity);

// 析构函数
void manager_destroy(StudentManager *manager);

// 添加学生
int manager_add_student(StudentManager *manager, Student *student);

// 查找学生（通过学号）
Student* manager_find_student(const StudentManager *manager, int id);

// 删除学生（通过学号）
int manager_remove_student(StudentManager *manager, int id);

// 更新学生信息
int manager_update_student(StudentManager *manager, int id, const char *new_name, float new_score);

// 获取学生数量
int manager_get_count(const StudentManager *manager);

// 遍历所有学生
void manager_for_each(const StudentManager *manager, void (*callback)(const Student*));

// 导出学生数据到文件
int manager_export_to_file(const StudentManager *manager, const char *filename);

// 从文件导入学生数据
int manager_import_from_file(StudentManager *manager, const char *filename);

#endif